#ifndef __VECTOR_H__
#define __VECTOR_H__

#include "matrix.h"
#include <iostream>
#include <cmath>

class Vector {
	public:
		Vector(const unsigned int = 1);
		Vector(const Vector&);
		~Vector();
		double innerProduct(const Vector &) const;
		Matrix outterProduct(const Vector &) const;
		Vector scalarProduct(const double &) const;
		double length(void) const;
		Vector normalize(void) const;

		unsigned int getRow(void) const;

		void print(void);
		
		Matrix toMatrixColumn(void) const;
		
		double& operator[](unsigned int) const;
		Vector operator-();
		Vector& operator=(const Vector&);
		
	private:
		unsigned int row;
		double* data;
};

Vector operator+(const Vector&, const Vector&);
Vector operator-(const Vector&, const Vector&);

#endif

